/**
 * 费用录入
 * @constructor
 */
function FeeInput() {
}

FeeInput.init = function () {
    // //日期区间选择
    //年月选择器
    laydate.render({
        elem: '#data_yearmonth',
        theme: 'molv',
        type: 'month'
    });
    laydate.render({
        elem: '#search_yearmonth',
        theme: 'molv',
        type: 'month'
    });

    bindShopselect();
    getfeeType();
    //设置列
    var tablecolumns=[];
    tablecolumns.push({
        //field: 'Number',//可不加
        title: '序号',//标题  可不加
        align: "center",
        width: 40,
        formatter: function (value, row, index) {
            var pageSize=$('#tableList').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
            var pageNumber=$('#tableList').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
            return pageSize * (pageNumber - 1) + index + 1;//返回每条的序号： 每页条数 * （当前页 - 1 ）+ 序号
        },
        footerFormatter: function(){
            return "统计";
        }
    });
    tablecolumns.push({ field: 'shopName', title: '商户名称',align: 'center'});
    tablecolumns.push({ field: 'feeYearMonth', title: '月份',align: 'center'});
    $.each(feetypedata, function (i, val) { //两个参数，第一个参数表示遍历的数组的下标，第二个参数表示下标对应的值
        tablecolumns.push({
            title: val.name,
            align: 'center',
            formatter: function (value, row, index) {
                var optionHtml = "";
                $.each(row.feeList, function (index, vallist) { //两个参数，第一个参数表示遍历的数组的下标，第二个参数表示下标对应的值
                    if(val.name==vallist.feeType)
                    {
                        optionHtml = vallist.amount;
                    }
                });
                return optionHtml;

            }
        });
    });
    tablecolumns.push({ field: 'amount', title: '总费用',align: 'center'});
    tablecolumns.push({ field: 'dueAmount', title: '欠费金额',align: 'center'});
    tablecolumns.push({
        title: '状态',
        align: 'center',
        formatter: function (value, row, index) {
            var optionHtml = "";
            if (row.dueAmount!="" && row.dueAmount > 0) {
                optionHtml = "<span class=\"label label-danger\" title=\"欠费\" >欠费</span>";
            }
            else  {
                optionHtml = "<span class=\"label label-info\" title=\"已交\">已交</span>";
            }
            return optionHtml;

        }
    });
    tablecolumns.push({ field: 'createTime', title: '录入时间',align: 'center'});
    tablecolumns.push({
        title: '操作',
        align: 'center',
        formatter: function (value, row, index) {
            var optionHtml = "";
            optionHtml = optionHtml+"<a class=\"btn btn-success btn-xs\"  href=\"javascript:void(0)\"  onclick='actionRecord(" + JSON.stringify(row) + ",\"fee\")' title=\"缴费\" ><i class=\"fa fa-edit\"></i>缴费</a>";
            optionHtml = optionHtml + " <a class=\"btn btn-danger btn-xs\" href=\"javascript:void(0)\"  onclick='actionRecord(" + JSON.stringify(row) + ",\"delete\")'  title=\"删除\"><i class=\"fa fa-remove\"></i>删除</a>"
            return optionHtml;

        }
    });

    $('#tableList').bootstrapTable({
        url: '/fee/tableSearch',
        method: 'post',
        striped : true, //是否显示行间隔色
        toolbar: "#toolbar",
        sidePagination: "true",
        dataField: "data",//这是返回的json数组的key.默认是"rows".这里只有前后端约定好就行
        showToggle : true, //是否显示详细视图和列表视图的切换按钮
        striped: true, // 是否显示行间隔色
        //search : "true",
        uniqueId: "id",
        pageList : [ 5, 10, 20,50,100],//可选择单页记录数
        pageSize: "10",
        pagination: true, // 是否分页
        sortable: true, // 是否启用排序
        sidePagination: 'server', // 设置为服务器端分页     客户端：client
        search:false,
        showColumns: true,
        showRefresh: true,
        showFooter:true,
        //得到查询的参数
        queryParams: function (params) {
            //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            var query_params = {
                //********table的参数 不变
                pageSize: params.limit,                         //页面大小
                pageIndex: (params.offset / params.limit) + 1,   //页码
                sort: params.sort,      //排序列名
                sortOrder: params.order, //排位命令（desc，asc）
                //********
                //获取查询的对象，往下加入
                name: $('#search_Name').val(), // 请求时向服务端传递的参数
                state: $('#search_State').val(),
                shopId: $('#search_ShopId').val(),
                feeYearMonth: $('#search_yearmonth').val(),
            };
            return query_params;
        },
        columns:tablecolumns
    });
}
//查询方法****************************
function doSearch() {
    // $('#tableList').bootstrapTable(('refresh')); // 很重要的一步，刷新url！
    $("#tableList").bootstrapTable("refreshOptions",{pageNumber:1});
}
//重置****************************
function doRest() {
    $("#search_ShopId").val("");
    $("#search_yearmonth").val("");
    $("#search_State").val("");
    // $('#tableList').bootstrapTable(('refresh')); // 很重要的一步，刷新url！
    $("#tableList").bootstrapTable("refreshOptions",{pageNumber:1});
}
//增加方法****************************
var Action="";
var Id=0;
var autokey=0;
var pxt="/fee"; //控制器名称
var feetypedata;
function addRecord() {
    Id=0;
    Action="add";
    $("#myform")[0].reset();
    //$("#save").removeAttr("disabled");
    //$("#text_ClientNo").removeAttr("readonly");

}
//增加/修改数据保存****************************
function saveRecord() {
    if(!validateForm()) return false;
    //创建传递的参数

    var amountStr=[];
   var amountlist=[];
    feetypedata.forEach(function(val){
        var am=$("#"+val.name+"").val();
        if(am==null || am=="")
        {
            amountlist.push(0);
        }
         else {
            amountlist.push(am);
        }
        amountStr.push(val.name);
    });
    var postdata = {
        id: Id,
        action:Action,
        shopId: $("#com_ShopId").val(),
        feeYearMonth: $("#data_yearmonth").val(),
        amountList: amountlist,
        amountStr:amountStr
    };
    // console.log(JSON.stringify(postdata));
    //发送异步请求到后台保存用户数据
    $.ajax({
        url:pxt+"/save",
        type:"post",
        data:JSON.stringify(postdata),
        contentType:"application/json",
        dataType:"json",
        success:function(data){
            if (data.code === "200") {
                $('#myModalAdd').modal('hide')
                doSearch();
                swal("操作成功!", "请继续操作", "success");
            }else if (data.code === "502") {
                swal("操作失败!", "该商户"+$("#data_yearmonth").val()+"月已添加过", "error");
            }else {
                swal("操作失败!", "请重试", "error");
            }
        }
    });
}

//表单验证
function validateForm() {
    //validate方法参数可选
    return $("#myform").validate({
        rules: {
            com_ShopId: {
                required: true,//必填
            },
            data_yearmonth: {
                required: true,//必填
            },
        },
        //错误信息提示
        messages: {
            com_ShopId: {
                required: "(必填)",
            },
            data_yearmonth: {
                required: "(必填)",
            },
        },
    }).form();

}

//操作相关方法****************************
function actionRecord(data,type) {
    if(type=="fee")
    {
        //缴费
        Id=data.id;
        autokey=data.autoKey;
        Action="fee";
        //  $("#text_ClientNo").attr("readonly", "true");
        $("#myform")[0].reset();
        //$("#save").removeAttr("disabled");
        WriteData(data);
        $('#myModalAdd2').modal('show')
    }
    else if(type=="delete")
    {
        //删除
        swal({
            title: "确认是否删除",
            text: "是否确认要删除该条记录？",
            type: "warning",
            showCancelButton: true,
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "删除",
            cancelButtonText: "取消",
            closeOnConfirm: false
        }, function () {
            //点击删除之后此处进行传递后台
            $.ajax({
                type: "delete",
                url: pxt+"/deleteById/"+data.id,
                dataType : "json",
                contentType: "application/json",
                success: function (data, status) {
                    if (data.code == "200") {
                        doSearch();
                        swal("删除成功!", "请继续操作", "success");
                    }
                    else{
                        swal("删除失败!", "请重试", "error");
                    }
                }
            });

        });
    }

}
function actionFee(obj,rowdata) {

    let state;
    if (obj.title === "已交")
        state = 0;
    else
        state = 1;
    var postdata = {
        id: rowdata.id,
        action:"changeList",
        state: state,
    };
    // console.log(JSON.stringify(postdata));
    //发送异步请求到后台保存用户数据
    $.ajax({
        url:"/fee/action",
        type:"post",
        data:JSON.stringify(postdata),
        contentType:"application/json",
        dataType:"json",
        success:function(data){
            if (data.code === "200") {
                doSearch();
                if(state==1)
                {
                    obj.innerHTML = "已交";
                    obj.title = "已交";
                    obj.setAttribute("class", "label label-info");
                }
                else {
                    obj.innerHTML = "未交";
                    obj.title = "未交";
                    obj.setAttribute("class", "label label-danger");
                }
                swal("操作成功!", "请继续操作", "success");
            } else {
                swal("操作失败!", "请重试", "error");
            }
        }
    });

}
//给控件赋值****************************
function WriteData(data) {
    $("#label_shopname").val(data.shopName);
    $("#label_yearmonth").val(data.feeYearMonth);
    var html="";
     $("#tablediv2").html("");
    html=html+"<tr><td colspan=\"2\">所属商户: "+data.shopName+"</td></tr>";
    html=html+"<tr><td colspan=\"2\">所属月份: "+data.feeYearMonth+"</td></tr>";
    $("#tablediv2").append(html);
    $.each(data.feeList, function (index, val) { //两个参数，第一个参数表示遍历的数组的下标，第二个参数表示下标对应的值
        html="";
        html=html+"<tr>";
        html=html+"<td>"+val.feeType+": "+val.amount+"</td>";
        if(val.state==1)
        {
            html=html+"<td><span id='sapn_1' name='sapn_1' class=\"label label-info\" style=\"cursor:pointer\" onclick='actionFee(this," + JSON.stringify(val) + ")' title=\"已交\" >已交</span></td>";
        }
        else {
            html=html+"<td><span id='sapn_2' name='sapn_2'  class=\"label label-danger\" style=\"cursor:pointer\" onclick='actionFee(this," + JSON.stringify(val) + ")' title=\"未交\" >未交</span></td>";
        }
        html=html+"</tr>";
        $("#tablediv2").append(html);
    });

}
//绑定下拉****************************
function bindShopselect() {

    $.ajax({
        url: "/shop/getShop",
        type: "get",
        contentType: "application/json",
        dataType: "json",
        success: function (data) {
            var ddl1 = $("#com_ShopId");
            var ddl2 = $("#search_ShopId");
            //删除节点
            $("#search_ShopId option").remove();
            $("#com_ShopId option").remove();
            //转成Json对象
            var result = eval(data.data);
            var opt1 = $("<option value=''></option>").text("--请选择所属商户--").val("");
            var opt2 = $("<option value=''></option>").text("--全部商户--").val("");

            ddl1.append(opt1);
            ddl2.append(opt2);
            //循环遍历 下拉框绑定
            $(result).each(function (key) {
                //添加option 对应Json对象名称
                opt1 = $("<option></option>").text(result[key].name).val(result[key].id);
                opt2 = $("<option></option>").text(result[key].name).val(result[key].id);

                ddl1.append(opt1);
                ddl2.append(opt2);
            });
        },
        error: function () {
            // alert("Error");
        }
    });

}
//动态设置收费类别****************************
function getfeeType() {
    $("#divform").html("");
    var html="";
    $.ajax({
        url:"/feetype/getFeeType",
        type:"get",
        //data:JSON.stringify(postdata),
        contentType:"application/json",
        dataType:"json",
        async: false, // 同步
        success:function(data) {
            console.log(data);
            feetypedata=data;
            $.each(data, function (i, val) { //两个参数，第一个参数表示遍历的数组的下标，第二个参数表示下标对应的值
                html="";
                html=html+"<div class=\"row\">";
                html=html+"<label class=\"col-lg-2 control-label\">"+val.name+"</label>";
                html=html+"<div class=\"col-lg-10\">";
                html=html+"<div class=\"form-group\">";
                html=html+" <input type=\"text\" id=\""+val.name+"\" name=\""+val.name+"\" placeholder=\""+val.name+"\" autocomplete=\"off\" class=\"form-control\" maxlength=\"10\" />";
                html=html+"</div>";
                html=html+"</div>";
                html=html+"</div>";
                $("#divform").append(html);
            });


        }
    });
}
//一键交清****************************
function saveFeeList()
{
    var postdata = {
        autoKey: autokey,
        action:"updatefeelist",
    };
    // console.log(JSON.stringify(postdata));
    //发送异步请求到后台保存用户数据
    $.ajax({
        url:pxt+"/action",
        type:"post",
        data:JSON.stringify(postdata),
        contentType:"application/json",
        dataType:"json",
        success:function(data){
            if (data.code === "200") {
                $('#myModalAdd2').modal('hide')
                doSearch();
                swal("操作成功!", "请继续操作", "success");
            } else {
                swal("操作失败!", "请重试", "error");
            }
        }
    });
}
//*****************************************************************************************
